在使用VS2013编译C++程序的时候,修改某个文件,会使整个工程都重新编译一遍,为了使编译速度加快,可以修改C++配置属性:
第一因时间引起的:
1.找到项目-属性-配置属性-C/C++
修改:
1)项目-属性-配置属性-C/C++---常规---调试信息格式:程序数据库(/Zi)
2)项目-属性-配置属性-C/C++---常规---多处理器编译:是(/MP)
/MP 选项在命令行上以减少总时间编译源文件。/MP 选项使编译器创建一个或多个自身的副本,每个副本都位于单独的进程中。然后这些副本同时编译源文件。因此,可显著减少生成源文件的总时间。
3)项目-属性-配置属性-C/C++---代码生成----启用最小重新生成:Yes(/Gm)
但这一项是和多处理器编译是冲突的:
cl : 命令行 warning D9030: “/Gm”与多处理不兼容;忽略 /MP 开关
所以如果使用多处理器编译,则关掉最小重新生成,反之亦然。
4)项目-属性-配置属性-C/C++---优化---优化:使速度最大化(/O2)
通常,算法程序选择最大化速度(/O2),界面程序选择最小化大小(/O1),可以获得最佳的效果
但打开这一项,与代码生成---基本运行时检查:两者(/RTC1)是冲突的
即若使用速度最大化,则将基本运行时检查设为默认值
5)项目-属性-配置属性-链接器---常规---“启用增量链接”:“是”
6)在vs上方的栏目中寻找:工具-选项-项目和解决方案-生成并运行:
? ? ?运行时,当项目过期时,选择提示生成。
第二预编译头文件引起的:
项目-属性-配置属性-预编译头文件:
使用预编译头文件的方法:
生成预编译头需要stdafx.h/.cpp文件的支持
1.创建stdafx.h/.cpp文件:
要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch文件)
? ? ??
我们知道一个头文件是不能编译的。所以我们还需要一个cpp文件来生成.pch 文件。这个文件默认的就是stdafx.cpp。在这个文件里只有一句代码就是:#include “stdafx.h”
1)创建stdafx.h和stdafx.cpp文件,并添加到工程中。stdafx.h头文件中主要包含的是一些不会经常改变的代码,如依赖库的那些头文件
2)项目-属性-配置属性-C/C++---预编译头---使用(/Yu)
3)单独选中stdafx.cpp,右键--属性-配置属性-C/C++---预编译头---创建(/Yc)
不然会有错误:无法打开预编译头 Debug\XXX.pch
4) 如果使用了/Yu,就是说使用了预编译,我们在每个.cpp文件的最开头,我强调一遍是最开头,包含你指定产生pch文件的.h文件(默认是stdafx.h)不然就会有问题。如果你没有包含这个文件,就告诉你Unexpected file end. 如果你不是在最开头包含的,你自己试以下就知道了,绝对有很惊人的效果…
上述步骤完成后,进行编译,可能会出现错误:
?
fatal error C1076: 编译器限制,达到内部堆限制,使用/Zm指定更高的限制
进入工程->点右键->工程属性->c++-〉命令行,在最下边输入/Zm1000,点确定
这是预编译头的时候虚拟内存不够引起的。具体数值可以尝试着调。
本页共37段,1697个字符,3674 Byte(字节)